package com.ziiwee.reduce.describe.types;

import com.ziiwee.reduce.describe.types.parser.FieldDescribeParser;
import com.ziiwee.reduce.describe.types.parser.TypeDescribeParser;

import java.util.List;

public interface TypeProviderRegister {

    void setDefaultTypeDescribeParser(TypeDescribeParser typeDescribeParser);

    void setDefaultFieldDescribeParser(FieldDescribeParser fieldDescribeParser);

    TypeDescribeParser getDefaultTypeDescribeParser();

    FieldDescribeParser getDefaultFieldDescribeParser();

    void setProviders(List<TypeProvider> providers);

    void registerProvider(TypeProvider provider);

    void registerProvider(int index, TypeProvider provider);

    List<TypeProvider> getProviders();

}
